from pptx import Presentation
from pptx.dml.color import RGBColor
from pptx.util import Inches
from pptx.enum.shapes import MSO_SHAPE
from pptx.enum.text import MSO_ANCHOR, MSO_AUTO_SIZE

# 加载PPT文件或创建一个新的PPT文件
prs = Presentation()  # 或者 Presentation('template.pptx') 加载模板
slide = prs.slides.add_slide(prs.slide_layouts[0])  # 添加一个幻灯片

# 添加一个图片到幻灯片中，指定位置和大小（Inches为单位）
pic = slide.shapes.add_picture('path_to_image.jpg', width=Inches(3),
                               height=Inches(3))  # 图片位置默认在左上角，可以调整left和top属性来改变位置。
pic.left = Inches(2)  # 设置图片距离左侧的距离为2英寸，可根据需要调整位置。
pic.top = Inches(1)  # 设置图片距离顶部的距离为1英寸，可根据需要调整位置。

# 添加一个形状，例如一个矩形，并设置其属性（颜色、大小等）
rect = slide.shapes.add_shape(MSO_SHAPE.RECTANGLE, left=Inches(5), top=Inches(1), width=Inches(2),
                              height=Inches(1))  # 矩形位置和大小设置。
rect.fill.solid()  # 设置填充颜色为实心（默认为无填充）
rect.fill.fore_color.rgb = RGBColor(255, 0, 0)  # 设置填充颜色为红色（RGB值）
rect.line.width = 2  # 设置线条宽度为2pt。
rect.line.dash_style = MSO_LINE_DASH  # 设置线条样式为虚线（可选）
rect.line.fore_color.rgb = RGBColor(0, 0, 255)  # 设置线条颜色为蓝色（RGB值）
rect.text = "这是一个矩形"  # 在矩形内添加文本（可选）
rect.text_frame.text = "这是一个矩形"  # 在矩形内添加文本（另一种方式）
rect.text_frame.paragraphs[0].font.size =14